<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 一 set
        let arr = [12, 24, 37, 37, 24, 49, 49, 55, 55] 
        // let arr1=new Set(arr)
        // console.log(arr1)
        // set 去重 返回的是一个对象   然后用我们的Array.from 或者扩展运算符转换为数组
        //  let arr1=Array.from(new Set(arr))
            // console.log([...arr1])
        //  console.log(arr1);

        // 二 fillter 结合 indexof  过滤筛选出第一次出现的下标
    //    let arr1=arr.filter((item,index)=>{
    //     return arr.indexOf(item)==index
    //    })
    //    console.log(arr1);
    // 三  使用 map数据结构
        //  let arr2=(arr)=>{
        //     let map= new Map()
        //     let newarr=[]
        //     for (let i = 0; i < arr.length; i++){
        //         if(!map.has(arr[i])){
        //             // set  设置 给每一项进行操作
        //             map.set(arr[i],true)
        //             // console.log( map.set(arr[i],"doing"));
        //         }
        //           newarr.push(arr[i])

        //     }
        //     return newarr
        //  }
        //  arr2(arr)


    // 数据结构 map set
    const map=new Map()
    let obj = {a:1}    
    map.set(obj,'isok');
    // console.log(map.get(obj));
    // 获取对象的值
    console.log(map.get(obj));
    // 是否含有
     console.log(map.has(obj));


     set.add(10)  //添加  返回Set结构本身
    set.delete(10)  //删除  返回布尔值表示是否成功
    set.has(10)  //返回布尔值表示是否是Set成员
    set.clear() //清除所有成员，没有返回值。
    
    set.keys() //返回键名的遍历器。
    set.values() //返回键值的遍历器。
    set.entries() //返回所有成员的遍历器。
    set.forEach() //遍历 Map 的所有成员。
    console.log(set); 

    </script>
</body>
</html>